//给你两个字符串：ransomNote 和 magazine ，判断 ransomNote 能不能由 magazine 里面的字符构成。
//如果可以，返回 true ；否则返回 false 。
//magazine 中的每个字符只能在 ransomNote 中使用一次。
#include <string>
#include <unordered_map>
using namespace std;
class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        if (0 == ransomNote.size() && 0 == magazine.size())
            return true;
        unordered_map<char, int> mymap;
        for (auto& ch : magazine) 
        {
            mymap[ch]++;
        }
        int n = 0;
        while (n < ransomNote.size())//
        {
            if (mymap[ransomNote[n]] >= 1) 
            {
                mymap[ransomNote[n]]--;
                n++;
            } 
            else
            return false;
        }
        return true;
    }
};






